#include<iostream>
#include<vector>
using namespace std;
//思路：用树来组织，查：往上找祖宗节点 插：一个的祖宗节点插入另一个祖宗节点的儿子
//优化：路径压缩 查的时候把一串都直接挂到父节点底下
//代码实现：用数组表示父节点即可
vector<int>parents;
int find(int x){
    int p=x;
    while(parents[p]!=p){
        p=parents[p];
    }
    while(parents[x]!=x){
        int temp=parents[x];
        parents[x]=p;
        x=temp;
    }
    return p;
}
int main(){
    int n,q;
    cin>>n>>q;
    parents.resize(n+1);
    for(int i=1;i<parents.size();i++){
        parents[i]=i;
    }
    while(q--){
        char m;
        int a,b;
        cin>>m>>a>>b;
        int pa,pb;
        pa=find(a),pb=find(b);
        if(m=='M'){
            parents[pb]=pa;
        }
        else{
            cout<<(pa==pb?"Yes":"No")<<endl;        
        }
        
    }
    return 0;
}
